The present invention generally relates to the control of a storage system which has a function for assigning real storage areas to virtual storage areas constituting a virtual volume.
A technology for dynamically assigning real storage areas to virtual storage areas which constitute a virtual volume which is a virtual logical volume is known (Japanese Patent Application Laid Open No. 2005-11316, for example). This technology is also called Thin Provisioning technology. The virtual volume is also known as a Thin Provisioning volume. According to Thin Provisioning technology, a storage system comprises a storage area pool. A storage area pool is an aggregate of one or a plurality of real volumes and is constituted by a plurality of real storage areas. The respective real storage areas are the constituent elements of a real volume. A real volume is a logical volume which is formed based on the storage space of one or a plurality of physical storage devices of the storage system (hard disk or flash memory, for example). Upon receipt of a write request designating a virtual storage area of the virtual volume from a higher level device (a host computer, for example), the storage system selects a real storage area from a plurality of unassigned real storage areas and assigns the selected real storage area to a virtual storage area designated by the write request. In addition, the storage system releases the assigned real storage area in cases where assignment of a real storage area is not required for a virtual storage area for which a real storage area has been assigned.
Because the virtual volume is switched from a used target to an unused target, the release of all the real storage areas which have been directly assigned to virtual volumes sometimes constitutes a problem for access performance. Cases which may be considered as cases where a problem can arise include, for example, a case where a virtual volume is the migration destination and a case where a virtual volume is assigned to a higher level device. The respective cases are described hereinbelow. In the following description, a logical volume which has an entity constituting a constituent element of a storage area pool is called a ‘real volume’ and a logical volume which has an entity which is not a constituent element of a storage area pool is called a ‘normal volume’.
(1) Case Where the Virtual Volume is the Migration Destination
Migration is the migration of data from a primary logical volume (‘PVOL’ hereinbelow) to a secondary logical volume (‘SVOL’ hereinbelow). The PVOL is the migration source and the SVOL is the migration destination. The PVOL and the SVOL may exist in different storage systems or may exist in one storage system. When migration is performed, the access path linking the higher level device and access destination change. More specifically, prior to execution of the migration, the logical volume, which constitutes the access destination of the higher level device, is the PVOL. However, following completion of the migration, the logical volume which constitutes the access destination of the higher level device is the SVOL. That is, not only a data transfer but also a change to the access path is included in the migration processing.
In cases where the migration destination (that is, SVOL) is a virtual volume to which not a single real storage area has been assigned, each time migration of data elements takes place, it is necessary to assign a real storage area to the virtual storage area constituting the data element migration destination. Hence, there is the problem that the access performance (speed, for example) during migration drops in comparison with a case where the migration destination is a normal volume.
This problem is as detailed below when an example is described with reference to FIGS. 25A to 25C. For example, as shown in FIG. 25A, the real storage area (b) of a real volume 7103 has already been assigned to a virtual storage area (B) of the virtual volume 7102. In this state, as shown in FIG. 25B, in cases where the migration of data from the virtual storage area (B) to the storage area (C) of the normal volume 7104 is complete, the assignment of the real storage area (b) to the virtual storage area (B) is cancelled (that is, the real storage area (b) is released). Thereafter, as shown in FIG. 25C, in cases where data elements stored in the storage area (D) of the normal volume 7105 undergo migration to the virtual storage area (B) of the virtual volume 7102, because the real storage area (b) assigned to the virtual storage area (B) has already been released, an unassigned real storage area must again be assigned to the virtual storage area (B).
(2) Case Where a Virtual Volume is Assigned to a Higher Level Device
In cases where not a single real storage area has been assigned to the virtual volume assigned to the higher level device, each time there is a write request designating the virtual volume from the higher level device, there is a need to assign a real storage area to the virtual storage area designated by the write request. Hence, there is the problem that the write performance (speed, for example) drops.
This problem is as detailed below when an example is described with reference to FIGS. 26A to 26B. For example, as shown in FIG. 26A, a virtual volume 7202 is assigned to a first host 7201 and a real storage area (a) of a real volume 7203 is assigned to the virtual storage area (A) of the virtual volume 7202. Here, as shown in FIG. 26B, in cases where the assignment of the virtual volume 7202 to the first host 7201 is released, the real storage area (a) is released by the storage system. Thereafter, the virtual volume 7202 is assigned to a second host 7204. Not a single real storage area has been assigned to the virtual volume 7202. Hence, in cases where a write request designating the virtual storage area (A) is received from the second host 7204, the storage system must again assign an unassigned real storage area to the virtual storage area (A).
As mentioned hereinabove, because the virtual volume is switched from a used target to an unused target, the release of all the real storage areas which have been directly assigned to virtual volumes sometimes constitutes a problem for access performance. Hence, when the real storage areas are assigned as is indefinitely to virtual volumes which are unused targets, there is the risk that the unassigned real storage area will be inadequate.